// 首先可以确定的是对整个序列进行两两交换的操作，一定可以得到所有的情况
// 因此，我们只要确定相邻位置进行两两交换操作其风险值的变化即可
// 根据推导，很容易得到只有当wi+1 + si+1 > wi + si时，交换才有可能让风险值变小
// 所以，只需要按照wi + si从小到大排序就可以让所有的风险值相加最小

#include <iostream>
#include <algorithm>
using namespace std;
typedef long long LL;
typedef pair<int, int> PII;
const int N = 50010;
PII cows[N];

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0), cout.tie(0);
    int n;
    cin >> n;
    for (int i = 0; i < n; ++i)
    {
        int w, s;
        cin >> w >> s;
        cows[i] = {w + s, w};
    }
    sort(cows, cows + n);
    LL res = -2e9, weight = 0;
    for (int i = 0; i < n; ++i)
    {
        // cout << cows[i].first << endl;
        res = max(res, weight - cows[i].first + cows[i].second);
        weight += cows[i].second;
        // cout << res << ' ' << weight << endl;
    }
    cout << res << endl;
    return 0;
}
